<script>
  let father1 = { name: "Rs" }
  let father2 = { name: "Tom" }

  let Son = function () { }  // 
  Son.prototype = father1; //  传地址

  let son1 = new Son()
  console.log('son1.name:', son1.name)    //  Rs

  Son.prototype = father2				    // 

  console.log('son1.name:', son1.name)   //  Rs

  let son2 = new Son()  // 
  console.log('son2.name:', son2.name)    // Tom

  son2.name = "Jack"						 // 不上原型链   
  console.log('son2.name:', son2.name)	//   Jack
  console.log('son2.__proto__.name:', son2.__proto__.name)  // Tom
  console.log('son2.name:', son2.name) 				     	  // Jack
  console.log('father2.name:', father2.name)	// Tom

// 栈                             堆
//Son.prototype  地址0         地址0{}
// Son.prototype 地址1        地址1{name:"Rs"}
// Son.prototype 地址2       地址2{name:"Tom"}
// Son1 地址3                地址3{__proto__:地址1}
// Son2 地址4                地址4{name:"Jack",__proto__:地址2}
</script>